/**
 * 
 */
package com.cuc.platform.core.service;

import java.util.List;

import com.cuc.platform.core.domain.baseInfo.UserInfo;

/**
 * @author peepul
 *
 * 用户信息业务接口
 */
public interface UserInfoService {
	/**
	 * 根据标识获取UserInfo对象
	 * 
	 * @param id
	 * @return UserInfo
	 */
	public UserInfo getUserInfo(Long id);
	
	/**
	 * 根据id获取带组织机构Organization对象的UserInfo对象
	 * 
	 * 这样就可以用形如：Organization org = userinfo.getOrg();
	 * 					这样的形式直接获取Organization对象
	 * 
	 * @param id
	 */
	public UserInfo getUserInfoWithOrg(Long id);
	
	/**
	 * 获取所有账号对象(非分页)
	 * 
	 * @return UserInfo List
	 */
	public List<UserInfo> getAllUserInfos();
	
	/**
	 * 新增UserInfo对象
	 * 
	 * @param userInfo
	 */
	public void insertUserInfo(UserInfo userInfo) throws ServiceException;
	
	/**
	 * 更新UserInfo对象
	 * 
	 * @param userInfo
	 * @throws ServiceException
	 */
	public void updateUserInfo(UserInfo userInfo) throws ServiceException;
	
	/**
	 * 根据id删除userInfo对象
	 * 
	 * 注：删除成功返回值为1，如没找到要删除的数据返回0，如果删除出错，则产生异常
	 * @param id
	 */
	public void delUserInfo(Long id) throws ServiceException;
	
	/**
	 * 修改用户信息状态位（逻辑删除）
	 * 	  有效：1
	 * 	  无效：0
	 */
	public void updateStatus(Long id, Integer status) throws ServiceException;
}